package com.ruoyi.model.service.impl;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.IdUtil;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.model.domain.ModelScheme;
import com.ruoyi.model.mapper.ModelSchemeMapper;
import com.ruoyi.model.service.IModelAlgorithmService;
import com.ruoyi.model.service.IModelSchemeService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 模型管理Service业务层处理
 *
 * @author rww
 * @date 2024-11-25
 */
@Service
public class ModelSchemeServiceImpl implements IModelSchemeService
{
    @Autowired
    private ModelSchemeMapper modelSchemeMapper;



    /**
     * 查询策略管理
     *
     * @param id 策略管理主键
     * @return 策略管理
     */
    @Override
    public ModelScheme selectModelSchemeById(Long id)
    {
        return modelSchemeMapper.selectModelSchemeById(id);
    }

    /**
     * 查询策略管理列表
     *
     * @param modelScheme 策略管理
     * @return 策略管理
     */
    @Override
    public List<ModelScheme> selectModelSchemeList(ModelScheme modelScheme)
    {
        return modelSchemeMapper.selectModelSchemeList(modelScheme);
    }

    /**
     * 新增策略管理
     *
     * @param modelScheme 策略管理
     * @return 结果
     */
    @Override
    public int insertModelScheme(ModelScheme modelScheme)
    {
        modelScheme.setId(IdUtil.getSnowflakeNextId());
        modelScheme.setCreateTime(DateUtils.getNowDate());
        return modelSchemeMapper.insertModelScheme(modelScheme);
    }

    /**
     * 修改策略管理
     *
     * @param modelScheme 策略管理
     * @return 结果
     */
    @Override
    public int updateModelScheme(ModelScheme modelScheme)
    {
        modelScheme.setUpdateTime(DateUtils.getNowDate());
        return modelSchemeMapper.updateModelScheme(modelScheme);
    }


    /**
     * 批量删除策略管理
     *
     * @param ids 需要删除的策略管理主键
     * @return 结果
     */
    @Override
    public int deleteModelSchemeByIds(Long[] ids)
    {
        return modelSchemeMapper.deleteModelSchemeByIds(ids);
    }

    /**
     * 删除策略管理信息
     *
     * @param id 策略管理主键
     * @return 结果
     */
    @Override
    public int deleteModelSchemeById(Long id)
    {
        return  0;
//        ModelAlgorithmParam modelAlgorithmParam=new ModelAlgorithmParam();
//        modelAlgorithmParam.setAlgorithmId(id);
//        List<ModelAlgorithmParam> list = modelAlgorithmParamService.selectModelAlgorithmParamList(modelAlgorithmParam);
//        if(ObjectUtils.isNotEmpty(list)){
//            List<Long> ids=list.stream().map(ModelAlgorithmParam::getId).collect(Collectors.toList());
//            modelAlgorithmParamService.deleteModelAlgorithmParamByIds(ids.stream().toArray(Long[]::new));
//        }
//        return modelAlgorithmMapper.deleteModelAlgorithmById(id);
    }

}
